package main

import (
	"crypto/tls"
	"golang.org/x/net/http2"
	"log"
	"net/http"
	"time"
)

func main() {
	// 支持HTTP/2的公共网站
	//url := "https://http2.golang.org/" // 需要VPN
	//url := "https://www.deepl.com/"
	//url := "https://yiyan.baidu.com/"
	url := "https://www.feishu.cn/"
	num := 30

	transport := &http.Transport{
		TLSClientConfig: &tls.Config{
			// 允许使用不安全的TLS版本和加密套件，仅用于示例，生产环境中不推荐
			InsecureSkipVerify: true,
			NextProtos:         []string{"h2"}, // 仅使用HTTP/2
		},
		// 强制使用HTTP/2
		ForceAttemptHTTP2: true,
	}

	// 使用http2.ConfigureTransports配置传输层以支持HTTP/2
	_, err := http2.ConfigureTransports(transport)
	if err != nil {
		return
	}

	// 创建一个HTTP客户端，默认配置会尝试使用HTTP/2
	client := &http.Client{
		Transport: transport,
		// 你可以在这里设置超时时间等
		Timeout: 30 * time.Second,
	}
	i := 1
	for i <= num {
		//fmt.Println("=========", i)
		i++
		// 发送GET请求
		req, err := http.NewRequest("GET", url, nil)
		if err != nil {
			log.Fatal(err)
		}
		// 发送请求并获取响应
		resp, err := client.Do(req)
		if err != nil {
			log.Fatal(err)
		}
		err = resp.Body.Close()
		if err != nil {
			return
		}
	}
}
